#pragma once
#include "Common.h"

//ThreadCache本质是由一个哈希对象映射的自由链表构成,里面由一堆的自由链表
class ThreadCache
{
public:
	//申请和释放内存对象
	void* Allocate(size_t size);
	void Deallocate(void* ptr, size_t size);

	//从中心缓存处获取对象
	void* FetchFromCentralCache(int index, size_t alignSize);

private:
	FreeList _freelists[NFREELIST];
};

//Window
//TLS thread local storage-->使每一个线程都需要有自己的ThreadCache,避免多线程的竞争
static _declspec(thread) ThreadCache* pLTSThreadCache = nullptr;

